/*
 * My97 DatePicker 4.6
 * SITE: http://dp.my97.net
 * BLOG: http://my97.cnblogs.com
 * MAIL: smallcarrot@163.com
 */
var $dp,WdatePicker;(function(){var _={
$wdate:true,
$dpPath:"",
$crossFrame:false,
doubleCalendar:false,
position:{},
lang:"auto",
skin:"default",
dateFmt:"yyyy-MM-dd",
realDateFmt:"yyyy-MM-dd",
realTimeFmt:"HH:mm:ss",
realFullFmt:"%Date %Time",
minDate:"1900-01-01 00:00:00",
maxDate:"2099-12-31 23:59:59",
startDate:"",
alwaysUseStartDate:false,
yearOffset:1911,
firstDayOfWeek:0,
isShowWeek:false,
highLineWeekDay:true,
isShowClear:true,
isShowToday:true,
isShowOthers:true,
readOnly:false,
errDealMode:0,
autoPickDate:null,
qsEnabled:true,

		specialDates : null,
		specialDays : null,
		disabledDates : null,
		disabledDays : null,
		opposite : false,
		onpicking : null,
		onpicked : null,
		onclearing : null,
		oncleared : null,
		ychanging : null,
		ychanged : null,
		Mchanging : null,
		Mchanged : null,
		dchanging : null,
		dchanged : null,
		Hchanging : null,
		Hchanged : null,
		mchanging : null,
		mchanged : null,
		schanging : null,
		schanged : null,
		eCont : null,
		vel : null,
		errMsg : "",
		quickSel : [],
		has : {}
	};
	WdatePicker = U;
	var X = window, O = "document", J = "documentElement", C = "getElementsByTagName", V, A, T, I, b;
	switch (navigator.appName) {
	case "Microsoft Internet Explorer":
		T = true;
		break;
	case "Opera":
		b = true;
		break;
	default:
		I = true;
		break
	}
	A = L();
	if (_.$wdate)
		M(A + "skin/WdatePicker.css");
	V = X;
	if (_.$crossFrame) {
		try {
			while (V.parent[O] != V[O]
					&& V.parent[O][C]("frameset").length == 0)
				V = V.parent
		} catch (P) {
		}
	}
	if (!V.$dp)
		V.$dp = {
			ff : I,
			ie : T,
			opera : b,
			el : null,
			win : X,
			status : 0,
			defMinDate : _.minDate,
			defMaxDate : _.maxDate,
			flatCfgs : []
		};
	B();
	if ($dp.status == 0)
		Z(X, function() {
			U(null, true)
		});
	if (!X[O].docMD) {
		E(X[O], "onmousedown", D);
		X[O].docMD = true
	}
	if (!V[O].docMD) {
		E(V[O], "onmousedown", D);
		V[O].docMD = true
	}
	E(X, "onunload", function() {
		if ($dp.dd)
			Q($dp.dd, "none")
	});
	function B() {
		V.$dp = V.$dp || {};
		obj = {
			$ : function($) {
				return (typeof $ == "string") ? this.win[O].getElementById($)
						: $
			},
			$D : function($, _) {
				return this.$DV(this.$($).value, _)
			},
			$DV : function(_, $) {
				if (_ != "") {
					this.dt = $dp.cal.splitDate(_, $dp.cal.dateFmt);
					if ($)
						for ( var A in $) {
							if (this.dt[A] === undefined)
								this.errMsg = "invalid property:" + A;
							this.dt[A] += $[A]
						}
					if (this.dt.refresh())
						return this.dt
				}
				return ""
			},
			show : function() {
				Q(this.dd, "block")
			},
			hide : function() {
				Q(this.dd, "none")
			},
			attachEvent : E
		};
		for ( var $ in obj)
			V.$dp[$] = obj[$];
		$dp = V.$dp
	}
	function E(A, $, _) {
		if (T)
			A.attachEvent($, _);
		else {
			var B = $.replace(/on/, "");
			_._ieEmuEventHandler = function($) {
				return _($)
			};
			A.addEventListener(B, _._ieEmuEventHandler, false)
		}
	}
	function L() {
		var _, A, $ = X[O][C]("script");
		for ( var B = 0; B < $.length; B++) {
			_ = $[B].src.substring(0, $[B].src.toLowerCase().indexOf(
					"wdatepicker.js"));
			A = _.lastIndexOf("/");
			if (A > 0)
				_ = _.substring(0, A + 1);
			if (_)
				break
		}
		return _
	}
	function F(F) {
		var E, C;
		if (F.substring(0, 1) != "/" && F.indexOf("://") == -1) {
			E = V.location.href;
			C = location.href;
			if (E.indexOf("?") > -1)
				E = E.substring(0, E.indexOf("?"));
			if (C.indexOf("?") > -1)
				C = C.substring(0, C.indexOf("?"));
			var G, I, $ = "", D = "", A = "", J, H, B = "";
			for (J = 0; J < Math.max(E.length, C.length); J++) {
				G = E.charAt(J).toLowerCase();
				I = C.charAt(J).toLowerCase();
				if (G == I) {
					if (G == "/")
						H = J
				} else {
					$ = E.substring(H + 1, E.length);
					$ = $.substring(0, $.lastIndexOf("/"));
					D = C.substring(H + 1, C.length);
					D = D.substring(0, D.lastIndexOf("/"));
					break
				}
			}
			if ($ != "")
				for (J = 0; J < $.split("/").length; J++)
					B += "../";
			if (D != "")
				B += D + "/";
			F = E.substring(0, E.lastIndexOf("/") + 1) + B + F
		}
		_.$dpPath = F
	}
	function M(A, $, B) {
		var D = X[O][C]("HEAD").item(0), _ = X[O].createElement("link");
		if (D) {
			_.href = A;
			_.rel = "stylesheet";
			_.type = "text/css";
			if ($)
				_.title = $;
			if (B)
				_.charset = B;
			D.appendChild(_)
		}
	}
	function Z($, _) {
		E($, "onload", _)
	}
	function G($) {
		$ = $ || V;
		var A = 0, _ = 0;
		while ($ != V) {
			var D = $.parent[O][C]("iframe");
			for ( var F = 0; F < D.length; F++) {
				try {
					if (D[F].contentWindow == $) {
						var E = W(D[F]);
						A += E.left;
						_ += E.top;
						break
					}
				} catch (B) {
				}
			}
			$ = $.parent
		}
		return {
			"leftM" : A,
			"topM" : _
		}
	}
	function W(E) {
		if (T)
			return E.getBoundingClientRect();
		else {
			var A = {
				ROOT_TAG : /^body|html$/i,
				OP_SCROLL : /^(?:inline|table-row)$/i
			}, G = null, _ = E.offsetTop, F = E.offsetLeft, D = E.offsetWidth, B = E.offsetHeight, C = E.offsetParent;
			if (C != E)
				while (C) {
					F += C.offsetLeft;
					_ += C.offsetTop;
					if (C.tagName.toLowerCase() == "body")
						G = C.ownerDocument.defaultView;
					C = C.offsetParent
				}
			C = E.parentNode;
			while (C.tagName && !A.ROOT_TAG.test(C.tagName)) {
				if (C.scrollTop || C.scrollLeft)
					if (!A.OP_SCROLL.test(Q(C)))
						if (!b || C.style.overflow !== "visible") {
							F -= C.scrollLeft;
							_ -= C.scrollTop
						}
				C = C.parentNode
			}
			var $ = a(G);
			F -= $.left;
			_ -= $.top;
			D += F;
			B += _;
			return {
				"left" : F,
				"top" : _,
				"right" : D,
				"bottom" : B
			}
		}
	}
	function N($) {
		$ = $ || V;
		var _ = $[O];
		_ = _[J] && _[J].clientHeight
				&& _[J].clientHeight <= _.body.clientHeight ? _[J] : _.body;
		return {
			"width" : _.clientWidth,
			"height" : _.clientHeight
		}
	}
	function a($) {
		$ = $ || V;
		var B = $[O], A = B[J], _ = B.body;
		B = (A && A.scrollTop != null && (A.scrollTop > _.scrollLeft || A.scrollLeft > _.scrollLeft)) ? A
				: _;
		return {
			"top" : B.scrollTop,
			"left" : B.scrollLeft
		}
	}
	function D($) {
		src = $ ? ($.srcElement || $.target) : null;
		if ($dp && $dp.cal && !$dp.eCont && $dp.dd && Q($dp.dd) == "block"
				&& src != $dp.el)
			$dp.cal.close()
	}
	function Y() {
		$dp.status = 2;
		H()
	}
	function H() {
		if ($dp.flatCfgs.length > 0) {
			var $ = $dp.flatCfgs.shift();
			$.el = {
				innerHTML : ""
			};
			$.autoPickDate = true;
			$.qsEnabled = false;
			K($)
		}
	}
	var R, $;
	function U(E, _) {
		$dp.win = X;
		B();
		E = E || {};
		if (_) {
			if (!D()) {
				$ = $ || setInterval(function() {
					if (V[O].readyState == "complete")
						clearInterval($);
					U(null, true)
				}, 50);
				return
			}
			if ($dp.status == 0) {
				$dp.status = 1;
				K( {
					el : {
						innerHTML : ""
					}
				}, true)
			} else
				return
		} else if (E.eCont) {
			E.eCont = $dp.$(E.eCont);
			$dp.flatCfgs.push(E);
			if ($dp.status == 2)
				H()
		} else {
			if ($dp.status == 0) {
				U(null, true);
				return
			}
			if ($dp.status != 2)
				return;
			var C = A();
			if (C) {
				$dp.srcEl = C.srcElement || C.target;
				C.cancelBubble = true
			}
			E.el = $dp.$(E.el || $dp.srcEl);
			if (!E.el
					|| E.el.disabled
					|| (E.el == $dp.el && Q($dp.dd) != "none" && $dp.dd.style.left != "-1970px"))
				return;
			K(E)
		}
		function D() {
			if (T && V != X && V[O].readyState != "complete")
				return false;
			return true
		}
		function A() {
			if (I) {
				func = A.caller;
				while (func != null) {
					var $ = func.arguments[0];
					if ($ && ($ + "").indexOf("Event") >= 0)
						return $;
					func = func.caller
				}
				return null
			}
			return event
		}
	}
	function S(_, $) {
		return _.currentStyle ? _.currentStyle[$] : document.defaultView
				.getComputedStyle(_, false)[$]
	}
	function Q(_, $) {
		if (_)
			if ($ != null)
				_.style.display = $;
			else
				return S(_, "display")
	}
	function K(H, $) {
		for ( var D in _)
			if (D.substring(0, 1) != "$")
				$dp[D] = _[D];
		for (D in H)
			if ($dp[D] === undefined)
				$dp.errMsg = "invalid property:" + D;
			else
				$dp[D] = H[D];
		var E = $dp.el ? $dp.el.nodeName : "INPUT";
		if ($ || $dp.eCont
				|| new RegExp(/input|textarea|div|span|p|a/ig).test(E))
			$dp.elProp = E == "INPUT" ? "value" : "innerHTML";
		else
			return;
		if ($dp.lang == "auto")
			$dp.lang = T ? navigator.browserLanguage.toLowerCase()
					: navigator.language.toLowerCase();
		if (!$dp.dd
				|| $dp.eCont
				|| ($dp.lang && $dp.realLang && $dp.realLang.name != $dp.lang
						&& $dp.getLangIndex && $dp.getLangIndex($dp.lang) >= 0)) {
			if ($dp.dd && !$dp.eCont)
				V[O].body.removeChild($dp.dd);
			if (_.$dpPath == "")
				F(A);
			var B = "<iframe src=\""
					+ _.$dpPath
					+ "My97DatePicker.htm\" frameborder=\"0\" border=\"0\" scrolling=\"no\"></iframe>";
			if ($dp.eCont) {
				$dp.eCont.innerHTML = B;
				Z($dp.eCont.childNodes[0], Y)
			} else {
				$dp.dd = V[O].createElement("DIV");
				$dp.dd.style.cssText = "position:absolute;z-index:19700";
				$dp.dd.innerHTML = B;
				V[O].body.insertBefore($dp.dd, V[O].body.firstChild);
				Z($dp.dd.childNodes[0], Y);
				if ($)
					$dp.dd.style.left = $dp.dd.style.top = "-1970px";
				else {
					$dp.show();
					C()
				}
			}
		} else if ($dp.cal) {
			$dp.show();
			$dp.cal.init();
			if (!$dp.eCont)
				C()
		}
		function C() {
			var F = $dp.position.left, B = $dp.position.top, C = $dp.el;
			if (C != $dp.srcEl && (Q(C) == "none" || C.type == "hidden"))
				C = $dp.srcEl;
			var H = W(C), $ = G(X), D = N(V), A = a(V), E = $dp.dd.offsetHeight, _ = $dp.dd.offsetWidth;
			if (isNaN(B)) {
				if (B == "above"
						|| (B != "under" && (($.topM + H.bottom + E > D.height) && ($.topM
								+ H.top - E > 0))))
					B = A.top + $.topM + H.top - E - 3;
				else
					B = A.top + $.topM + H.bottom;
				B += T ? -1 : 1
			} else
				B += A.top + $.topM;
			if (isNaN(F))
				F = A.left + Math.min($.leftM + H.left, D.width - _ - 5)
						- (T ? 2 : 0);
			else
				F += A.left + $.leftM;
			$dp.dd.style.top = B + "px";
			$dp.dd.style.left = F + "px"
		}
	}
})()